package br.com.pesca.entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "pesca")
public class Pesca implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private long id;

    @ManyToOne(cascade = {CascadeType.ALL})
    @JoinColumn(name = "pesc_local")
    private Local local;

    @Temporal(TemporalType.DATE)
    @Column(name = "data_saida")
    private Date dataSaida;

    @Temporal(TemporalType.DATE)
    @Column(name = "data_chegada")
    private Date dataChegada;

    @ManyToOne(cascade = {CascadeType.MERGE})
    @JoinColumn(name = "embarcacao_id")
    private Embarcacao embarcacao;

    @Column(name = "tempo_pesca")
    private int tempoPesca;

    @Column(name = "ponto_desembarque")
    private String pontoDesembarque;

    @Column(name = "num_pescadores")
    private int numPescadores;

    @Column(name = "num_canoas")
    private int numCanoas;

    @Column(name = "gelo_preco")
    private double precoGelo;

    @Column(name = "gelo_kg")
    private double kgGelo;

    @Column(name = "profundidade_local")
    private double profundidadeLocal;

    @Column(name = "profundidade_pesca")
    private double profundidadePesca;

    @Column(name = "num_caixa_peixes")
    private int numCaixaPeixes;

    /*
     * GETTERS AND SETTERS
     */
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Local getLocal() {
        if (local == null) {
            local = new Local();
        }
        return local;
    }

    public void setLocal(Local local) {
        this.local = local;
    }

    public Date getDataSaida() {
        return dataSaida;
    }

    public void setDataSaida(Date dataSaida) {
        this.dataSaida = dataSaida;
    }

    public Date getDataChegada() {
        return dataChegada;
    }

    public void setDataChegada(Date dataChegada) {
        this.dataChegada = dataChegada;
    }

    public Embarcacao getEmbarcacao() {
        return embarcacao;
    }

    public void setEmbarcacao(Embarcacao embarcacao) {
        this.embarcacao = embarcacao;
    }

    public int getTempoPesca() {
        return tempoPesca;
    }

    public void setTempoPesca(int tempoPesca) {
        this.tempoPesca = tempoPesca;
    }

    public String getPontoDesembarque() {
        return pontoDesembarque;
    }

    public void setPontoDesembarque(String pontoDesembarque) {
        this.pontoDesembarque = pontoDesembarque;
    }

    public int getNumPescadores() {
        return numPescadores;
    }

    public void setNumPescadores(int numPescadores) {
        this.numPescadores = numPescadores;
    }

    public int getNumCanoas() {
        return numCanoas;
    }

    public void setNumCanoas(int numCanoas) {
        this.numCanoas = numCanoas;
    }

    public double getPrecoGelo() {
        return precoGelo;
    }

    public void setPrecoGelo(double precoGelo) {
        this.precoGelo = precoGelo;
    }

    public double getKgGelo() {
        return kgGelo;
    }

    public void setKgGelo(double kgGelo) {
        this.kgGelo = kgGelo;
    }

    public double getProfundidadeLocal() {
        return profundidadeLocal;
    }

    public void setProfundidadeLocal(double profundidadeLocal) {
        this.profundidadeLocal = profundidadeLocal;
    }

    public double getProfundidadePesca() {
        return profundidadePesca;
    }

    public void setProfundidadePesca(double profundidadePesca) {
        this.profundidadePesca = profundidadePesca;
    }

    public int getNumCaixaPeixes() {
        return numCaixaPeixes;
    }

    public void setNumCaixaPeixes(int numCaixaPeixes) {
        this.numCaixaPeixes = numCaixaPeixes;
    }

}
